package com.example.raft;

import java.util.concurrent.ConcurrentHashMap;

/**
 * SimulationEnv：提供一个静态Map，用来在同一进程模拟节点间的RPC通信
 * 不做真正网络通讯，只是通过Map拿到对方对象实例
 */
public class SimulationEnv {

    // nodeId -> RaftNode
    private static final ConcurrentHashMap<String, RaftNode> nodeMap = new ConcurrentHashMap<>();

    // 注册节点
    public static void registerNode(RaftNode node) {
        nodeMap.put(node.getNodeId(), node);
    }

    // 根据ID获取节点
    public static RaftNode getNode(String nodeId) {
        return nodeMap.get(nodeId);
    }

    // 清空
    public static void clear() {
        nodeMap.clear();
    }
}